package example

import (
	"fmt"
	"io"
	"strings"
)

// 限流读取
func Case7() {
	fmt.Println("🎯限流读取")
	// 创建大量数据
	largeData := strings.Repeat("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 100) // 2600字节
	reader := strings.NewReader(largeData)

	// 限制读取最多100字节
	limitedReader := io.LimitedReader{R: reader, N: 100}

	// 读取数据
	data, err := io.ReadAll(&limitedReader)
	if err != nil {
		fmt.Printf("读取错误: %v\n", err)
		return
	}

	fmt.Printf("读取了 %d 字节 (限制: 100字节)\n", len(data))
	fmt.Printf("前50字符: %s...\n", string(data[:50]))

	// 查看剩余可读取数量
	fmt.Printf("剩余可读取: %d 字节\n", limitedReader.N)
}
